// package com.dong.webtest;
//
// import org.bouncycastle.crypto.engines.AESEngine;
// import org.bouncycastle.crypto.fpe.FPEFF1Engine;
// import org.bouncycastle.crypto.params.FPEParameters;
// import org.bouncycastle.util.encoders.Hex;
//
// public class FPEExample {
//     // 加密函数
//     public static String encrypt(String plainText, byte[] key, byte[] tweak) {
//         FPEFF1Engine ff1Engine = new FPEFF1Engine();
//         int radix = 10; // 数字基数（0-9）
//         ff1Engine.init(true, new FPEParameters(new AESEngine(), key, radix, tweak));
//         return process(ff1Engine, plainText);
//     }
//
//     // 解密函数
//     public static String decrypt(String cipherText, byte[] key, byte[] tweak) {
//         FPEFF1Engine ff1Engine = new FPEFF1Engine();
//         int radix = 10;
//         ff1Engine.init(false, new FPEParameters(new AESEngine(), key, radix, tweak));
//         return process(ff1Engine, cipherText);
//     }
//
//     // 处理输入输出
//     private static String process(FPEFF1Engine engine, String data) {
//         byte[] input = data.getBytes();
//         byte[] output = new byte[input.length];
//         engine.processBlock(input, 0, output, 0);
//         return new String(output);
//     }
//
//     public static void main(String[] args) {
//         // 示例：密钥和 tweak（需安全存储）
//         byte[] key = Hex.decode("2B7E151628AED2A6ABF7158809CF4F3C"); // AES-128 密钥
//         byte[] tweak = Hex.decode(""); // 可选附加参数
//
//         String plainText = "1234567890123456789"; // 19 位数字
//         String cipherText = encrypt(plainText, key, tweak);
//         String decryptedText = decrypt(cipherText, key, tweak);
//
//         System.out.println("加密后: " + cipherText);
//         System.out.println("解密后: " + decryptedText);
//     }
// }